const debug = import.meta.env.MODE !== 'production'
export default debug

/** @desc 文件转换base64 */
export const fileToBase64 = (file: File): Promise<string> => {
  return new Promise((resolve, reject) => {
    const reader = new FileReader()
    reader.onload = () => {
      if (reader.result) {
        resolve(reader.result.toString())
      } else {
        reject(new Error('文件转base64失败'))
      }
    }
    reader.onerror = (error) => {
      reject(error)
    }
    reader.readAsDataURL(file)
  })
}

/** @desc 生成随机字符串 */
export const generateRandomStr = (length: number) => {
  let content = ''
  const str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    + 'abcdefghijklmnopqrstuvwxyz0123456789@#$'

  for (let i = 1; i <= length; i++) {
    const char = Math.floor(Math.random()
      * str.length + 1)

    content += str.charAt(char)
  }

  return content
}

// export const formatMoney = (money: number) => {
//   return String(money)
//     .split('')
//     .reverse()
//     .reduce((prev, next, index) => {
//       return (index % 3 ? next : `${next},`) + prev
//     })
// }

export const formatMoney = (money, symbol = '', decimals = 2) => {
  return new Intl.NumberFormat('zh-CN', {
    style: 'currency', // 货币形式
    currency: 'CNY', // "CNY"是人民币
    currencyDisplay: 'symbol', // 默认“symbol”，中文中代表“¥”符号
    useGrouping: true, // 是否使用分组分隔符，如千位分隔符或千/万/亿分隔符，默认为true
    minimumFractionDigits: decimals, // 使用的小数位数的最小数目.可能的值是从 0 到 20
    maximumFractionDigits: decimals, // 使用的小数位数的最大数目。可能的值是从 0 到 20
  }).format(money)
}

export const computeRate = (a, b) => {
  return !b ? 0.0 : (a * 100.0) / b
}

export const formatRate = (value) => {
  if (value == null || value === undefined) {
    return '--'
  }
  return `${value.toFixed(2)}%`
}
